package org.example.offical.doc;

import dev.langchain4j.data.message.SystemMessage;
import dev.langchain4j.data.message.TextContent;
import dev.langchain4j.data.message.UserMessage;
import dev.langchain4j.model.chat.ChatLanguageModel;
import dev.langchain4j.model.chat.response.ChatResponse;
import dev.langchain4j.model.openai.OpenAiChatModel;

/**
 * @author fish_temp_author
 * @since fish_temp_since
 */
public class ChatLanguageModelDemo {
    public static void main(String[] args) {
        ChatLanguageModel chatLanguageModel = OpenAiChatModel.builder()
                // 温度，介于0~2之间，越大LLM的回答更随机，越小越稳定
                .temperature(0.0d)
                .apiKey("demo")
                // 自动打印日志，依赖于slf4j
                .logRequests(true)
                .logResponses(true)
                .modelName("gpt-4o-mini")
                .build();

        ChatResponse chatResponse = chatLanguageModel.chat(
                // 系统消息
                SystemMessage.from("你是一个翻译小工具，你需要根据用户的语言，翻译成英文"),
                //用户消息
                UserMessage.from(
                        TextContent.from("你好"),
                        TextContent.from("我叫谢阿花")
                        // 支持其他类型，比如音频
                        //, AudioContent.from(Base64.getEncoder().encodeToString("".getBytes(StandardCharsets.UTF_8)))
                )
        );
        System.out.println(chatResponse);
    }
}
